package day12;

import java.util.Arrays;

/*
* 数组工具类 Arrays
*
* */
public class Demo5 {

    public static void main(String[] args) {
        int[] arr = {1,2,3,7,4,8,2};

        //直接打印数组打印的是地址
        System.out.println(arr);

        //打印数组的字符串表示
//        System.out.println(Arrays.toString(arr));

        //给数组排序
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));

        Person person = new Person(18,"翠花");
        Person person2 = new Person(16,"王钢蛋");
        Person person3 = new Person(36,"桂芬");
        //创建一个数组，装载Person类型的元素
        Person[] persons = {person,person2,person3};

        Arrays.sort(persons);

//        System.out.println(Arrays.toString(persons));

        //返回元素在指定数组的索引位置,必须数组排序完才能使用
        int index = Arrays.binarySearch(arr,8);

        System.out.println("索引位置:"+index);


    }
}

//对于自定义的元素，想要进行排序，需要实现自定义的排序接口
class Person implements Comparable{
    public int age;

    public String name;

    public Person(int age,String name){
        this.age = age;
        this.name = name;
    }

    @Override
    public String toString(){
        return name+":"+age;
    }

    //在当前方法中，进行定义排序规则，返回值为int
    @Override
    public int compareTo(Object o) {
        Person person = (Person) o;
        //按照两个对象的年龄进行排序
        // 返回正数,从大到小
        // 返回负数,从小到大
        // 返回0,两个对象相等
        return person.age - this.age;
    }
}


